Row

DOT

Name Symbol Block Time Module Amount Percent
Polkadot DOT 10362064 2022-05-18 Balances 1194535802.078 99.87
Acala DOT 1043530 2022-05-18 Tokens 1500642.674 0.13
Statemint DOT 1310560 2022-05-18 Balances 1753.746 0.00

Row

KSM

Name Symbol Block Time Module Amount Percent
Karura KSM 1917277 2022-05-18 Tokens 55595.396 68.61
Kusama KSM 841386 2022-05-18 Tokens 24105.457 29.75
Statemine KSM 2112152 2022-05-18 Balances 1324.423 1.63

Row

AUSD

Name Symbol Block Time Module Amount Percent
Acala AUSD 1043530 2022-05-18 Tokens 5999706 60.21
Karura AUSD 1917277 2022-05-18 Tokens 3965241 39.79

Row

KBTC

Name Symbol Block Time Module Amount Percent
Kusama KBTC 841386 2022-05-18 Tokens 21.19843 67.84
Karura KBTC 1917277 2022-05-18 Tokens 10.04793 32.16

Row

KINT

Name Symbol Block Time Module Amount Percent
Kusama KINT 841386 2022-05-18 Tokens 10000000.00 99.76
Karura KINT 1917277 2022-05-18 Tokens 23893.73 0.24

Row

PHA

Name Symbol Block Time Module Amount Percent
Karura PHA 1917277 2022-05-18 Tokens 475313.25 99.17
Phala Network PHA 90051 2022-04-15 Balances 4000.01 0.83
---
title: "Acala / Karura Token Dashboard"
output:
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
    social: menu
    source_code: embed
---

```{css custom1, echo=FALSE}
.dataTables_scrollBody {
    max-height: 100% !important;
}
```

```{r global, include=FALSE}
library(knitr)

knitr::opts_chunk$set(
  message = FALSE,
  warning = FALSE,
  comment = "#>"
)


library(kableExtra)
library(formattable)
library(lubridate)
library(flexdashboard)
library(DT)
library(subscanr)
library(ghql)
x <- GraphqlClient$new()

# Helper function to concat
`%+%` <- function(a, b) paste0(a, b)

```

```{r tokens, cache = TRUE, include=FALSE}

rd <- fread("~/Python_HOME/tokens.csv")
# dim(rd)

# rd[, .N, by = Token][N > 1]

# fix Tokens
rd[, Symbol := Token]
rd[Token == "{'ForeignAsset': 0}", Symbol := "RMRK"]
rd[Token == "{'ForeignAsset': 1}", Symbol := "ARIS"]
rd[Token == "{'ForeignAsset': 2}", Symbol := "QTZ"]
rd[Token == "{'ForeignAsset': 3}", Symbol:= "MOVRZ"]
rd[Token == "{'ForeignAsset': 4}", Symbol := "HKO"]
rd[Token == "{'ForeignAsset': 5}", Symbol := "CSM"]
rd[Token == "{'ForeignAsset': 6}", Symbol := "KICO"]
rd[Token == "{'ForeignAsset': 7}", Symbol := "USDT"]
rd[Token == "{'ForeignAsset': 8}", Symbol := "TEER"]
rd[Token == "{'ForeignAsset': 9}", Symbol := "NEER"]
rd[Token == "{'ForeignAsset': 10}", Symbol := "KMA"]
rd[Token == "{'ForeignAsset': 11}", Symbol := "BSX"]
rd[Token == "{'ForeignAsset': 12}", Symbol := "AIR"]
rd[Token == "{'ForeignAsset': 13}", Symbol := "CRAB"]
rd[Token == "{'ForeignAsset': 14}", Symbol := "GENS"]
rd[Token == "{'ForeignAsset': 15}", Symbol := "EQD"]
rd[Token == "{'StableAssetPoolToken': 0}", Symbol := "taiKSM"]
rd[Token == "{'LiquidCrowdloan': 13}", Symbol := "LCDOT"]
rd[Token == "{'Token': 'VSKSM'}", Symbol := "VSKSM"]
rd[Token == "{'Token': 'PHA'}", Symbol := "PHA"]
rd[Token == "{'Token': 'KSM'}", Symbol := "KSM"]
rd[Token == "{'Token': 'KBTC'}", Symbol := "KBTC"]
rd[Token == "{'Token': 'TAI'}", Symbol := "TAI"]
rd[Token == "{'Token': 'LKSM'}", Symbol := "LKSM"]
rd[Token == "{'Token': 'KINT'}", Symbol :="KINT"]
rd[Token == "{'Token': 'KUSD'}", Symbol := "AUSD"]
rd[Token == "{'Token': 'BNC'}", Symbol := "BNC"]
rd[substr(Token, 1, 6) == "['KAR'", Symbol := "KAR"]
rd[Token == "['CRAB', 'CKTON']", Symbol := "CKTON"]                                   
rd[Token == "{'Token': 'LDOT'}", Symbol := "LDOT"]                                  
rd[Token == "{'Token': 'DOT'}", Symbol := "DOT"]            
rd[Token == "{'Token': 'AUSD'}", Symbol := "AUSD"]                                            
rd[substr(Token, 1, 6) == "['ACA'", Symbol := "ACA"] 
rd[Token == "{'Token': 'INTR'}", Symbol := "INTR"]
rd[substr(Symbol, 1, 1) == "{", Symbol := NA] 

# rd[, .(Token, Symbol)]

rd[, .N, by = Symbol][N > 1]

rd <- merge(rd, subscanr::tokens[, .(Token, decimals)], by.x = "Symbol", by.y = "Token")
rd[, adj := 10 ** as.numeric(decimals)]
rd[, Amount := as.numeric(Amount) / adj]

```

Row
----

### DOT

```{r DOT}

dot <- rd[Symbol == 'DOT', .(Name, Symbol, Block, Time, Module, Amount)] %>%
  setorder(-Amount)
dot[, Percent := round((Amount / sum(Amount)) * 100, 2)]

knitr::kable(dot, escape = FALSE) %>%
  kable_styling()

```

Row
----

### KSM

```{r KSM}

ksm <- rd[Symbol == 'KSM', .(Name, Symbol, Block, Time, Module, Amount)] %>%
  setorder(-Amount)
ksm[, Percent := round((Amount / sum(Amount)) * 100, 2)]

knitr::kable(ksm, escape = FALSE) %>%
  kable_styling()

```


Row
----

### AUSD

```{r AUSD}

ausd <- rd[Symbol == 'AUSD', .(Name, Symbol, Block, Time, Module, Amount)] %>%
  setorder(-Amount)
ausd[, Percent := round((Amount / sum(Amount)) * 100, 2)]

knitr::kable(ausd, escape = FALSE) %>%
  kable_styling()

```

Row
----

### KBTC

```{r KBTC}

kbtc <- rd[Symbol == 'KBTC', .(Name, Symbol, Block, Time, Module, Amount)] %>%
  setorder(-Amount)
kbtc[, Percent := round((Amount / sum(Amount)) * 100, 2)]

knitr::kable(kbtc, escape = FALSE) %>%
  kable_styling()

```

Row
----

### KINT

```{r KINT}

kint <- rd[Symbol == 'KINT', .(Name, Symbol, Block, Time, Module, Amount)] %>%
  setorder(-Amount)
kint[, Percent := round((Amount / sum(Amount)) * 100, 2)]

knitr::kable(kint, escape = FALSE) %>%
  kable_styling()

```

Row
----

### PHA

```{r PHA}

pha <- rd[Symbol == 'PHA', .(Name, Symbol, Block, Time, Module, Amount)] %>%
  setorder(-Amount)
pha[, Percent := round((Amount / sum(Amount)) * 100, 2)]

knitr::kable(pha, escape = FALSE) %>%
  kable_styling()

```